
import {baseUrl}  from "./base";
import store from '@/store'


/**
 * 请求的封装
 * @param {String} url 请求的接口地址
 * @param {String} method 请求的方法
 * @param {Object} data 请求的参数
 * @param {Object} option 请求头的配置
 * @param {Object} reqOption 响应头的配置
 */
const request = (url, method='GET', data={}, option={"Content-Type": "application/json"},reqOption) => {
  wx.showLoading({
    title: '加载中...',
  });
  let header = {
    "Token":store.state.vuex_token || '',
    ...option
  }
  return new Promise((resolve, reject) => {
    wx.request({
      url: baseUrl + url,
      data,
      header,
      method,
      responseType : reqOption,
      timeout:1000*5,
      success: res => {
        // console.log('响应：',res);
        wx.hideLoading()
        if (res.statusCode === 200) {
          //200: 服务端业务处理正常结束
          resolve(res.data)
        } else {
          //其它错误，提示用户错误信息
          console.error(res);
          resolve(res)
          if(res.statusCode == 404){
            wx.showToast({
              title: '数据不存在',
              icon:'none'
            })
          }
        }
      },
      fail: res => {
        // console.error(res);
        wx.hideLoading()
        reject(res)
      }
    })
  })
}



/**
 * GET请求
 * @param {String} url 请求接口地址
 * @param {Object} params 请求参数
 * @param {Object} option 请求头的配置
 * @param {Object} reqOption 响应头的配置
 */
export const getApi = (url, params, option,reqOption) =>  request(url, 'GET', params, option,reqOption);


/**
 * POST请求
 * @param {String} url 请求接口地址
 * @param {Object} params 请求参数
 * @param {Object} option 请求头的配置
 * @param {Object} reqOption 响应头的配置
 */
export const postApi = (url, params, option,reqOption) => request(url, 'POST', params, option,reqOption);

